package com.lei.demo.simple.app;

import com.lei.demo.simple.Cpu;
import com.lei.demo.simple.Mainboard;
import com.lei.demo.simple.factory.CpuFactory;
import com.lei.demo.simple.factory.MainboardFactory;

/**
 * 装机工程师
 * @author chenhs
 * @time 2016年1月7日 上午11:23:43
 */
public class ComputerEngineer {
	/**
	 * 定义组装机需要的Cpu
	 */
	private Cpu cpu = null;
	
	/**
	 * 定义组装机需要的主板
	 */
	private Mainboard mainboard = null;
	
	public void makeComputer(int cpuType, int mainboard){
		prepareHardwares(cpuType, mainboard);
	}
	
	public void prepareHardwares(int cpuType, int mainboard){
		//这里要去准备CPU和主板的具体实现，为了示例简单，这里只准备这两个
        //可是，装机工程师并不知道如何去创建，怎么办呢？
        
        //直接找相应的工厂获取
		this.cpu = CpuFactory.createCpu(cpuType);
		this.mainboard = MainboardFactory.createMainboard(mainboard);
		
		//测试配件是否好用
		this.cpu.calculate();
		this.mainboard.installCPU();
	}
}
